home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / FROMUTS / CDUNGEON / !CDUNGEON / h / VARS < prev   
Text File  |  1992-03-25  |  11KB  |  418 lines

  1. /* vars.h -- variables for dungeon */
  2.  
  3. /* These variable definitions are really ugly because they are actually
  4.  * translations of FORTRAN common blocks.  In the original FORTRAN source
  5.  * the common blocks were included many times by each function that
  6.  * needed them; I have changed this to define them all in this one file,
  7.  * and include this in every source file.  It's less modular, and it
  8.  * makes everything slower to compile, but it's easier on me.
  9.  * A few structures used only by the parsing routines are in parse.h.
  10.  */
  11.  
  12. #ifndef VARS_H
  13. #define VARS_H
  14.  
  15. #ifndef EXTERN
  16. #define EXTERN extern
  17. #endif
  18.  
  19. EXTERN struct {
  20.     integer prsa, prsi, prso;
  21.     logical prswon;
  22.     integer prscon;
  23. } prsvec_;
  24.  
  25. #define prsvec_1 prsvec_
  26.  
  27. EXTERN struct {
  28.     integer oflag, oact, oslot, oprep, oname;
  29. } orphs_;
  30.  
  31. #define orphs_1 orphs_
  32. #define orp ((integer *)&orphs_1)
  33.  
  34. EXTERN struct {
  35.     integer lastit;
  36. } last_;
  37.  
  38. #define last_1 last_
  39.  
  40. EXTERN struct {
  41.     integer winner, here;
  42.     logical telflg;
  43. } play_;
  44.  
  45. #define play_1 play_
  46.  
  47. EXTERN struct {
  48.     integer rlnt, rdesc1[200], rdesc2[200], rexit[200], ractio[200],
  49.         rval[200], rflag[200];
  50. } rooms_;
  51.  
  52. #define rooms_1 rooms_
  53. #define eqr ((integer *)&rooms_1 + 1)
  54. #define rrand ((integer *)&rooms_1 + 601)
  55.  
  56. /* Room flags */
  57.  
  58. #define RSEEN (32768)
  59. #define RLIGHT (16384)
  60. #define RLAND (8192)
  61. #define RWATER (4096)
  62. #define RAIR (2048)
  63. #define RSACRD (1024)
  64. #define RFILL (512)
  65. #define RMUNG (256)
  66. #define RBUCK (128)
  67. #define RHOUSE (64)
  68. #define RNWALL (32)
  69. #define REND (16)
  70.  
  71. EXTERN const struct {
  72.     integer whous, lroom, cella, mtrol, maze1, mgrat, maz15, fore1, fore3, 
  73.         clear, reser, strea, egypt, echor, tshaf, bshaf, mmach, dome, 
  74.         mtorc, carou, riddl, lld2, temp1, temp2, maint, blroo, treas, 
  75.         rivr1, rivr2, rivr3, mcycl, rivr4, rivr5, fchmp, falls, mbarr, 
  76.         mrain, pog, vlbot, vair1, vair2, vair3, vair4, ledg2, ledg3, 
  77.         ledg4, msafe, cager, caged, twell, bwell, alice, alism, alitr, 
  78.         mtree, bkent, bkvw, bktwi, bkvau, bkbox, crypt, tstrs, mrant, 
  79.         mreye, mra, mrb, mrc, mrg, mrd, fdoor, mrae, mrce, mrcw, mrge, 
  80.         mrgw, mrdw, inmir, scorr, ncorr, parap, cell, pcell, ncell, cpant,
  81.         cpout, cpuzz;
  82. } rindex_
  83. #ifdef INIT
  84.     = { 2, 8, 9, 10, 11, 25, 30, 31, 33, 36, 40, 42, 44, 49, 61, 76,
  85.         77, 79, 80, 83, 91, 94, 96, 97, 100, 102, 103, 107, 108, 109, 
  86.         101, 112, 113, 114, 120, 119, 121, 122, 126, 127, 128, 129, 130, 
  87.         131, 132, 133, 135, 140, 141, 142, 143, 144, 145, 146, 147, 148, 
  88.         151, 153, 154, 155, 157, 158, 159, 160, 161, 162, 163, 164, 165, 
  89.         166, 167, 171, 172, 173, 174, 176, 177, 179, 182, 183, 184, 185, 
  90.         186, 188, 189, 190 }
  91. #endif
  92.     ;
  93.  
  94. #define rindex_1 rindex_
  95.  
  96. EXTERN const struct {
  97.     integer xmin, xmax, xdown, xup, xnorth, xsouth, xenter, xexit, xeast, 
  98.         xwest;
  99. } xsrch_
  100. #ifdef INIT
  101.     = { 1024, 16384, 10240, 9216, 1024, 5120, 13312, 14336, 3072, 
  102.         7168 }
  103. #endif
  104.     ;
  105.  
  106. #define xsrch_1 xsrch_
  107.  
  108. EXTERN struct {
  109.     integer olnt, odesc1[220], odesc2[220], odesco[220], oactio[220], oflag1[
  110.         220], oflag2[220], ofval[220], otval[220], osize[220], ocapac[220]
  111.         , oroom[220], oadv[220], ocan[220], oread[220];
  112. } objcts_;
  113.  
  114. #define objcts_1 objcts_
  115. #define eqo ((integer *)&objcts_1 + 1)
  116.  
  117. EXTERN struct {
  118.     integer r2lnt, oroom2[20], rroom2[20];
  119. } oroom2_;
  120.  
  121. #define oroom2_1 oroom2_
  122.  
  123. /* Object flags (oflags) */
  124.  
  125. #define VISIBT (32768)
  126. #define READBT (16384)
  127. #define TAKEBT (8192)
  128. #define DOORBT (4096)
  129. #define TRANBT (2048)
  130. #define FOODBT (1024)
  131. #define NDSCBT (512)
  132. #define DRNKBT (256)
  133. #define CONTBT (128)
  134. #define LITEBT (64)
  135. #define VICTBT (32)
  136. #define BURNBT (16)
  137. #define FLAMBT (8)
  138. #define TOOLBT (4)
  139. #define TURNBT (2)
  140. #define ONBT (1)
  141. #define FINDBT (32768)
  142. #define SLEPBT (16384)
  143. #define SCRDBT (8192)
  144. #define TIEBT (4096)
  145. #define CLMBBT (2048)
  146. #define ACTRBT (1024)
  147. #define WEAPBT (512)
  148. #define FITEBT (256)
  149. #define VILLBT (128)
  150. #define STAGBT (64)
  151. #define TRYBT (32)
  152. #define NOCHBT (16)
  153. #define OPENBT (8)
  154. #define TCHBT (4)
  155. #define VEHBT (2)
  156. #define SCHBT (1)
  157.  
  158. EXTERN const struct {
  159.     integer garli, food, gunk, coal, machi, diamo, tcase, bottl, water, rope, 
  160.         knife, sword, lamp, blamp, rug, leave, troll, axe, rknif, keys, 
  161.         ice, bar, coffi, torch, tbask, fbask, irbox, ghost, trunk, bell, 
  162.         book, candl, match, tube, putty, wrenc, screw, cyclo, chali, 
  163.         thief, still, windo, grate, door, hpole, leak, rbutt, raili, pot, 
  164.         statu, iboat, dboat, pump, rboat, stick, buoy, shove, ballo, 
  165.         recep, guano, brope, hook1, hook2, safe, sslot, brick, fuse, 
  166.         gnome, blabe, dball, tomb, lcase, cage, rcage, spher, sqbut, 
  167.         flask, pool, saffr, bucke, ecake, orice, rdice, blice, robot, 
  168.         ftree, bills, portr, scol, zgnom, egg, begg, baubl, canar, bcana, 
  169.         ylwal, rdwal, pindr, rbeam, odoor, qdoor, cdoor, num1, num8, 
  170.         warni, cslit, gcard, stldr, hands, wall, lungs, sailo, aviat, 
  171.         teeth, itobj, every, valua, oplay, wnort, gwate, master;
  172. } oindex_
  173. #ifdef INIT
  174.     = { 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  175.         20, 21, 23, 30, 26, 33, 34, 35, 36, 39, 42, 45, 46, 47, 48, 51, 
  176.         54, 55, 56, 57, 58, 59, 61, 62, 63, 65, 66, 71, 78, 79, 75, 85, 
  177.         86, 87, 88, 89, 90, 92, 94, 96, 98, 99, 97, 101, 102, 103, 105, 
  178.         107, 109, 110, 111, 112, 113, 119, 123, 124, 125, 126, 127, 132, 
  179.         133, 134, 137, 138, 139, 140, 141, 142, 145, 148, 149, 151, 152, 
  180.         154, 155, 156, 157, 158, 159, 161, 164, 171, 172, 173, 175, 178, 
  181.         185, 186, 187, 188, 189, 200, 198, 201, 196, 202, 197, 192, 194, 
  182.         195, 193, 205, 209, 215 }
  183. #endif
  184.     ;
  185.  
  186. #define oindex_1 oindex_
  187.  
  188. EXTERN struct {
  189.     integer clnt, ctick[25], cactio[25];
  190.     logical cflag[25];
  191. } cevent_;
  192.  
  193. #define cevent_1 cevent_
  194. #define eqc ((integer *)&cevent_1 + 1)
  195.  
  196. EXTERN const struct {
  197.     integer cevcur, cevmnt, cevlnt, cevmat, cevcnd, cevbal, cevbrn, cevfus, 
  198.         cevled, cevsaf, cevvlg, cevgno, cevbuc, cevsph, cevegh, cevfor, 
  199.         cevscl, cevzgi, cevzgo, cevste, cevmrs, cevpin, cevinq, cevfol;
  200. } cindex_
  201. #ifdef INIT
  202.     = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 
  203.         18, 19, 20, 21, 22, 23, 24 }
  204. #endif
  205.     ;
  206.  
  207. #define cindex_1 cindex_
  208.  
  209. EXTERN struct {
  210.     integer alnt, aroom[4], ascore[4], avehic[4], aobj[4], aactio[4], astren[
  211.         4], aflag[4];
  212. } advs_;
  213.  
  214. #define advs_1 advs_
  215. #define eqa ((integer *)&advs_1 + 1)
  216.  
  217. EXTERN const struct {
  218.     integer astag;
  219. } aflags_
  220. #ifdef INIT
  221.     = { 32768 }
  222. #endif
  223.     ;
  224.  
  225. #define aflags_1 aflags_
  226.  
  227. EXTERN const struct {
  228.     integer player, arobot, amastr;
  229. } aindex_
  230. #ifdef INIT
  231.     = { 1, 2, 3 }
  232. #endif
  233.     ;
  234.  
  235. #define aindex_1 aindex_
  236.  
  237. EXTERN const struct {
  238.     integer cintw, deadxw, frstqw, inxw, outxw, walkiw, fightw, foow, meltw, 
  239.         readw, inflaw, deflaw, alarmw, exorcw, plugw, kickw, wavew, 
  240.         raisew, lowerw, rubw, pushw, untiew, tiew, tieupw, turnw, breatw, 
  241.         knockw, lookw, examiw, shakew, movew, trnonw, trnofw, openw, 
  242.         closew, findw, waitw, spinw, boardw, unboaw, takew, invenw, fillw,
  243.          eatw, drinkw, burnw, mungw, killw, attacw, swingw, walkw, tellw, 
  244.         putw, dropw, givew, pourw, throww, digw, leapw, stayw, follow, 
  245.         hellow, lookiw, lookuw, pumpw, windw, clmbw, clmbuw, clmbdw, 
  246.         trntow;
  247. } vindex_
  248. #ifdef INIT
  249.     = { 1, 2, 3, 4, 5, 6, 7, 8, 101, 100, 102, 103, 104, 105, 106, 
  250.         107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 
  251.         120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 
  252.         133, 134, 135, 136, 137, 138, 139, 141, 140, 142, 143, 144, 145, 
  253.         146, 147, 148, 89, 91, 73, 85, 151, 152, 153, 154, 155, 156, 157, 
  254.         158, 159 }
  255. #endif
  256.     ;
  257.  
  258. #define vindex_1 vindex_
  259.  
  260. EXTERN struct {
  261.     logical trollf, cagesf, bucktf, caroff, carozf, lwtidf, domef, glacrf, 
  262.         echof, riddlf, lldf, cyclof, magicf, litldf, safef, gnomef, 
  263.         gnodrf, mirrmf, egyptf, onpolf, blabf, brieff, superf, buoyf, 
  264.         grunlf, gatef, rainbf, cagetf, empthf, deflaf, glacmf, frobzf, 
  265.         endgmf, badlkf, thfenf, singsf, mrpshf, mropnf, wdopnf, mr1f, 
  266.         mr2f, inqstf, follwf, spellf, cpoutf, cpushf;
  267.     integer btief, binff, rvmnt, rvclr, rvcyc, rvsnd, rvgua, orrug, orcand, 
  268.         ormtch, orlamp, mdir, mloc, poleuf, quesno, nqatt, corrct, lcell, 
  269.         pnumb, acell, dcell, cphere;
  270. } findex_;
  271.  
  272. #define findex_1 findex_
  273. #define flags ((logical *)&findex_1)
  274. #define switch_ ((integer *)&findex_1 + 46)
  275.  
  276. EXTERN struct {
  277.     integer dbgflg, prsflg, gdtflg;
  278. } debug_;
  279.  
  280. #define debug_1 debug_
  281.  
  282. EXTERN struct {
  283.     integer thfpos;
  284.     logical thfflg, thfact, swdact;
  285.     integer swdsta;
  286. } hack_;
  287.  
  288. #define hack_1 hack_
  289.  
  290. EXTERN struct {
  291.     integer vlnt, villns[4], vprob[4], vopps[4], vbest[4], vmelee[4];
  292. } vill_;
  293.  
  294. #define vill_1 vill_
  295. #define eqv ((integer *)&vill_1 + 1)
  296.  
  297. EXTERN struct {
  298.     integer moves, deaths, rwscor, mxscor, mxload, ltshft, bloc, mungrm, hs, 
  299.         egscor, egmxsc;
  300. } state_;
  301.  
  302. #define state_1 state_
  303.  
  304. EXTERN struct {
  305.     integer xtype, xroom1, xstrng, xactio, xobj;
  306. } curxt_;
  307.  
  308. #define curxt_1 curxt_
  309. #define xflag ((integer *)&curxt_1 + 4)
  310.  
  311. EXTERN const struct {
  312.     integer xrmask, xdmask, xfmask, xfshft, xashft, xelnt[4], xnorm, xno, 
  313.         xcond, xdoor, xlflag;
  314. } xpars_
  315. #ifdef INIT
  316.     = { 255, 31744, 3, 256, 256, { 1, 2, 3, 3 }, 1, 2, 3, 4, 32768 }
  317. #endif
  318.     ;
  319.  
  320. #define xpars_1 xpars_
  321.  
  322. EXTERN struct {
  323.     integer mbase, strbit;
  324. } star_;
  325.  
  326. #define star_1 star_
  327.  
  328. EXTERN struct {
  329.     integer inlnt;
  330.     char inbuf[78];
  331. } input_;
  332.  
  333. #define input_1 input_
  334.  
  335. EXTERN struct {
  336.     integer fromdr, scolrm, scolac;
  337.     const integer scoldr[8], scolwl[12];
  338. } screen_
  339. #ifdef INIT
  340.     = { 0, 0, 0, { 1024, 153, 5120, 154, 3072, 152, 7168, 151 },
  341.         { 151, 207, 3072, 152, 208, 7168, 153, 206, 5120, 154, 205,
  342.           1024 } }
  343. #endif
  344.     ;
  345.  
  346. #define screen_1 screen_
  347.  
  348. EXTERN struct {
  349.     integer mlnt, mrloc, rtext[1050];
  350. } rmsg_;
  351.  
  352. #define rmsg_1 rmsg_
  353.  
  354. EXTERN const struct {
  355.     integer vmaj, vmin, vedit;
  356. } vers_
  357. #ifdef INIT
  358.     = { 2, 7, 'B' }
  359. #endif
  360.     ;
  361.  
  362. #define vers_1 vers_
  363.  
  364. EXTERN struct {
  365.     integer pltime, shour, smin, ssec;
  366. } time_;
  367.  
  368. #define time_1 time_
  369.  
  370. EXTERN const struct {
  371.     integer hfactr;
  372. } hyper_
  373. #ifdef INIT
  374.     = { 500 }
  375. #endif
  376.     ;
  377.  
  378. #define hyper_1 hyper_
  379.  
  380. EXTERN struct {
  381.     integer xlnt, travel[900];
  382. } exits_;
  383.  
  384. #define exits_1 exits_
  385.  
  386. EXTERN struct {
  387.     const integer cpdr[16], cpwl[8];
  388.     integer cpvec[64];
  389. } puzzle_
  390. #ifdef INIT
  391.     = { { 1024, -8, 2048, -7, 3072, 1, 4096, 9, 5120, 8, 6144, 7, 
  392.           7168, -1, 8192, -9 },
  393.         { 205, -8, 206, 8, 207, 1, 208, -1 },
  394.             { 1,  1,  1,  1,  1,  1, 1, 1,
  395.               1,  0, -1,  0,  0, -1, 0, 1,
  396.               1, -1,  0,  1,  0, -2, 0, 1,
  397.           1,  0,  0,  0,  0,  1, 0, 1,
  398.           1, -3,  0,  0, -1, -1, 0, 1,
  399.           1,  0,  0, -1,  0,  0, 0, 1,
  400.           1,  1,  1,  0,  0,  0, 1, 1,
  401.           1,  1,  1,  1,  1,  1, 1, 1 } }
  402. #endif
  403.     ;
  404.  
  405. #define puzzle_1 puzzle_
  406.  
  407. EXTERN const struct {
  408.     const integer batdrp[9];
  409. } bats_
  410. #ifdef INIT
  411.     = { 66, 67, 68, 69, 70, 71, 72, 65, 73 }
  412. #endif
  413.     ;
  414.  
  415. #define bats_1 bats_
  416.  
  417. #endif
  418.